/*
 * Copyright 2010 Christoph Widulle (christoph.widulle@googlemail.com)
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the
 * License. You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS"
 * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */



package com.android1.amarena2d.nodes.layer;

import com.android1.amarena2d.animation.Animation;
import com.android1.amarena2d.engine.AmarenaCamera;
import com.android1.amarena2d.nodes.sprites.Sprite;
import com.android1.amarena2d.texture.ManagedTexture;
import com.android1.amarena2d.texture.TextureFrame;
import com.android1.amarena2d.texture.TexturedMesh;

/**
 * Will stick to the camera and remains in the center of the screen, even while camera is moving.
 */
public class StaticCameraBackground extends Sprite {

    public StaticCameraBackground(TexturedMesh texturedMesh) {
        super(texturedMesh);
    }

    public StaticCameraBackground(TextureFrame textureFrame) {
        super(textureFrame);
        fitToScreen();

    }

    public StaticCameraBackground(ManagedTexture managedTexture) {
        super(managedTexture);
        fitToScreen();
    }

    public StaticCameraBackground(String texturePath) {
        super(texturePath);
        fitToScreen();
    }

    public StaticCameraBackground(Animation animation) {
        super(animation);
        fitToScreen();
    }


    public void fitToScreen() {
        final AmarenaCamera camera = engine.getCamera();
        final float x = camera.getX();
        final float y = camera.getY();
        final float w = camera.getWidth();
        final float h = camera.getHeight();

        setXY(x, y);
        setSize(w, h);

        sync().syncPositionFrom(engine.getCamera());
        sync().syncSizeFrom(engine.getCamera());


    }


}